package com.hospital.register.vo.order;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@ToString
@ApiModel(description = "订单详情的查询结果")
public class OrderQueryVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModel("其它额外信息")
    @Data
    public static class OtherInfo implements Serializable {

        @ApiModelProperty("状态的中文名")
        @TableField(exist = false)
        private String orderStatusString;

    }

    @ApiModelProperty(value = "id")
    private Long id;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "其他参数")
    private OtherInfo param;

    @ApiModelProperty(value = "userId")
    private Long userId;

    @ApiModelProperty(value = "订单交易号")
    private String outTradeNo;

    @ApiModelProperty(value = "医院编号")
    private String hoscode;

    @ApiModelProperty(value = "医院名称")
    private String hosname;

    @ApiModelProperty(value = "科室编号")
    private String depcode;

    @ApiModelProperty(value = "科室名称")
    private String depname;

    @ApiModelProperty(value = "排班id")
    private String scheduleId;

    @ApiModelProperty(value = "医生职称")
    private String title;

    @ApiModelProperty(value = "安排日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date reserveDate;

    @ApiModelProperty(value = "安排时间（0：上午 1：下午）")
    private Integer reserveTime;

    @ApiModelProperty(value = "就诊人id")
    private Long patientId;

    @ApiModelProperty(value = "就诊人名称")
    private String patientName;

    @ApiModelProperty(value = "就诊人手机")
    private String patientPhone;

    @ApiModelProperty(value = "预约记录唯一标识（医院预约记录主键）")
    private String hosRecordId;

    @ApiModelProperty(value = "预约号序")
    private Integer number;

    @ApiModelProperty(value = "建议取号时间")
    private String fetchTime;

    @ApiModelProperty(value = "取号地点")
    private String fetchAddress;

    @ApiModelProperty(value = "医事服务费")
    private BigDecimal amount;

    @ApiModelProperty(value = "退号时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date quitTime;

    @ApiModelProperty(value = "订单状态")
    private Byte orderStatus;

}

